#include <stdio.h>
/*
 * 选择排序：
 * 前提：
 * 从小到大进行排序，用数组来存储数值
 * 思想：
 * 每次遍历找到当时范围内最小的值，放到当时范围内的第一个位置
 * */
/*函数名：selectionSort()
 * 输入：一个无序的数组arr,数组的长度N
 * 输出：无  （在原数组上进行的排序）
 * */
void selectionSort(int arr[],int N){
    for (int i = 0; i < N-1; ++i) {
        //第i次排序，找到数组的第i小的值，放到数组的第i个位置
        int minPos=i;//minPos代表最小值的索引值，初始值可以设定为第一个值
        for (int j = i+1; j < N; ++j) {
            if(arr[minPos] >arr[j])//如果当前的最小值大于数组里面的值，则进行更新
                minPos=j;
        }
        //循环结束之后，minPos代表最小值的索引值
        //将最小值和第i个位置的值进行交换
        if(minPos!=i){
            int tmp =arr[i];
            arr[i]=arr[minPos];
            arr[minPos]=tmp;
        }
    }
}
int main() {
    int arr[5]={35,235,92,12,1};
    selectionSort(arr,5);
   // printf("Hello, World!\n");
    return 0;
}
